±ÍÇÏ´Â ¼Õ´Ô À̽ʴϴÙ
·Î±×ÀÎ
ȸ¿ø°¡ÀÔ
  
  µ¨¸¶´ç °ø½Ä ÀºÇà°èÁÂ
  ÇϳªÀºÇà 227-910235-83607
  ¿¹±ÝÁÖ ÀÌ»ó±¹(¿î¿µÁø)
ÇÁ·ÎÁ§Æ® °Ô½ÃÆÇ
ÅõÇ¥°Ô½ÃÆÇ
µ¨¸¶´ç¼Ò°³
±âÃʺÎÅÍ È°¿ë±îÁö! µ¨ÆÄÀÌ ±³À° - µ¥ºê±â¾î
°­ÁÂ, ÆÁ, Á¤º¸ °­ÁÂ, ÆÁ, Á¤º¸ ÀÔ´Ï´Ù.
±Û³»¿ë - °­ÁÂ, ÆÁ, Á¤º¸
 [ÆÁ] ¾×¼¼½º¹ÙÀ̿÷¹À̼Ǡ¹ß»ý½Ã ¶ß´Â ÁÖ¼Ò°ªÀ¸·Î ¿¡·¯³­ ¶óÀΠã±â
¾çº´±Ô
(¾çº´±Ô)
2006-05-02 ¿ÀÈÄ 3:48:34
Ä«Å×°í¸®: °­ÁÂ
13524ȸ Á¶È¸



÷ºÎÆÄÀÏ ´Ù¿î·Îµå
3_¾×¼¼½º¹ÙÀ̿÷¹À̼Ç_1.zip
¾î¶»°Ô º¸¸é ±âº»ÀΠ°Í °°Àºµ¥¿ä. ÀǿܷΠ¸¹Àº ºÐµéÀÌ Àß ¸ð¸£½Ã´Â °Í °°¾Æ¼­ À̾߱âÇغ¾´Ï´Ù.

¾×¼¼½º¹ÙÀ̿÷¹À̼Ǡ¿¡·¯°¡ ¹ß»ýÇϸ頿¡·¯°¡ ³­ À§Ä¡ÀÇ ÁÖ¼Ò°ªÀ» 16Áø¼ö·Î º¸¿©ÁÝ´Ï´Ù.
±× È­¸éÀ» º» »ç¿ëÀڴ ū ÀÏÀ̶󵵠³­ ÁÙ ¾Ë°í ¹Ù·Î ¿¬¶ôÇϴ °æ¿ì°¡ ¸¹Àºµ¥¿ä.
±× È­¸éÀÇ ³»¿ëÀ» ÀüÈ­·Î ÁÙÁÙÁÙ ´Ù Àоî Áֱ⵵ ÇÏ°í, Ä¸ÃÄÇؼ­ º¸³»Áֱ⵵ ÇÏÁÒ.

±×·±µ¥ Á¤ÀÛ ±×°É º¸´Â °³¹ßÀڴ ±× ¼ýÀÚ°¡ ÀǹÌÇϴ °Ô ¹ºÁöµµ Àß ¸ð¸£°í,
±×°É °¡Áö°í ¹» ÇؾߠÇÏ´ÂÁöµµ Àß ¸ð¸£´Â °æ¿ì°¡ ¸¹½À´Ï´Ù.

¹°·Ð, µð¹ö±ë ÁßÀ̶ó¸é Find Error ¸Þ´º·Î ÇÑ ¹æ¿¡ Ã£À» ¼ö Àִµ¥¿ä.
»ç¿ëÀÚ°¡ ÀÌ È­¸é¸¸ µþ¶û º¸³»¿Â °æ¿ì¶ó¸é ±× ÁÖ¼Ò°ª¸¸À¸·Î ¿¡·¯³­ À§Ä¡¸¦ Ã£¾Æ¾ß ÇÕ´Ï´Ù.

¸Þ¸ð¸® ÁÖ¼Ò°ªÀ» ¼³¸íÇϴ °ÍÀ̹ǷΠÁ¤È®ÇÑ ÁּҷΠ¼³¸íÇϱâ À§Çؼ­ Ã·ºÎÇÑ ¼Ò½º¸¦ °¡Áö°í ¼³¸íÇÏ°Ú½À´Ï´Ù.
(Âü°í·Î µ¨ÆÄÀÌ7ÀÔ´Ï´Ù. ´Ù¸¥ ¹öÀü¿¡¼­´Â ¿©±â¼­ ¼³¸íÇϴ ÁÖ¼Ò°ª°ú ´Ù¸¦ ¼ö ÀÖÀ¸³ª ³»¿ëÀº µ¿ÀÏÇÕ´Ï´Ù.)


¼Ò½º¸¦ º¾½Ã´Ù.

Form1Create¿¡¼­´Â Label1.Caption ¿¡´Ù°¡ HInstance¸¦ IntToHex·Î º¸¿©ÁÖµµ·Ï Çß°í, (±×³É Âü°íÇϽöó°í)

Button1Click¿¡¼­´Â ´ÙÀ½°ú °°ÀÌ ÄÚµùÇؼ­ ¾×¼¼½º¹ÙÀ̿÷¹À̼Ǡ¿¡·¯°¡ ¶ß°Ô Çß½À´Ï´Ù.


    31: procedure TForm1.Button1Click(Sender: TObject);
    32: var
    33:   P: Pointer;
    34:   i: Integer;
    35:   S: String;
    36: begin
    37:
    38:   P := Pointer( 99999999 );
    39:
    40:   i := Integer( P^ );
    41:
    42:   S := IntToStr( i );
    43:
    44: end;


ÄÄÆÄÀÏ&½ÇÇàÇغ¸¸é Label1¿¡´Â $00400000 ¶ó°í ½á ÀÖ°í,
¹öÆ°À» Å¬¸¯Çϸé


    Access violation at address 0044EBA9 in module 'Project1.exe' read of address 05FF5E0FF


¶ó´Â ¿¡·¯ ¸Þ¼¼Áö°¡ ¶å´Ï´Ù.
¿©±â¼­ ¸»Çϴ address 0044EBA9 ÀÌ ÁÖ¼Ò°ªÀ¸·Î ¼Ò½ºÄÚµåÀÇ ¾î´À À¯´Ö ¸î ¹ø° ¶óÀÎÀÎÁö¸¦ ¾Ë ¼ö Àִµ¥¿ä.
±×³ÉÀº ¾Ë ¼ö ¾ø°í ´ÙÀ½°ú °°ÀÌ ÇؾߠÇÕ´Ï´Ù.


¡Ü ÇÁ·ÎÁ§Æ® ¿É¼ÇÀ» ¿±´Ï´Ù. (Shift+Control+F11,  Project->Options)

¡Ü Linker ÅÇÀ» ¿±´Ï´Ù.

¡Ü Map fileÀ» Á¦ÀÏ ¹Ø¿¡ Àִ Detailed¸¦ Å¬¸¯ÇÕ´Ï´Ù.

¡Ü Build All


±×¸®°í ³ª¼­ ¼Ò½ºÄڵ尡 Àִ Æú´õ¿¡ º¸¸é Project1.map¶ó´Â ÆÄÀÏÀÌ ¸¸µé¾îÁ® ÀÖÀ» °Ì´Ï´Ù.
±×°É ¸Þ¸ðÀåÀ¸·Î ¿±´Ï´Ù.
´Ù¸¥ °Ç ´Ù¸¥ ÀÚ·áµé Ã£¾Æ¼­ °øºÎÇØ º¸½Ã°í, ¿©±â¼­ ¼³¸íÇϴ °Ç ¸ÊÆÄÀÏÀÇ °¡À堾Ʒ§ºÎºÐÀÔ´Ï´Ù.
°¡À堾Ʒ§ºÎºÐ¿¡´Â ´ÙÀ½°ú °°ÀÌ ³ª¿Í ÀÖ½À´Ï´Ù.


    Line numbers for Unit1(Unit1.pas) segment .text

        27 0001:0004DB00    28 0001:0004DB18    29 0001:0004DB70    36 0001:0004DB90
        38 0001:0004DBA4    40 0001:0004DBA9    42 0001:0004DBAB    44 0001:0004DBD2
        46 0001:0004DC08    46 0001:0004DC0F

    Line numbers for Project1(C:\»õ Æú´õ\Project1.dpr) segment .text

         9 0001:0004DE18    10 0001:0004DE28    11 0001:0004DE34    12 0001:0004DE4C
        13 0001:0004DE58

    Bound resource files

    c:\program files\borland\delphi7\Lib\Buttons.res
    c:\program files\borland\delphi7\Lib\ExtDlgs.res
    c:\program files\borland\delphi7\Lib\Controls.res
    Unit1.dfm
    Project1.res
    Project1.drf


    Program entry point at 0001:0004DE18


ÀÌ Áß¿¡¼­µµ °¡Àå À­ ¶óÀÎÀ» º¸¸é


    Line numbers for Unit1(Unit1.pas) segment .text ¶ó°í µÇ¾î Àִµ¥,


¸» ±×´ë·Î ¼Ò½ºÄÚµåÀÇ ¶óÀεéÀÇ ÁÖ¼Ò°ªµéÀÌ ³ª¿Í ÀÖ½À´Ï´Ù.

27 0001:0004DB00¶ó´Â °ÍÀº

27¶óÀÎÀÇ 0001¹ø° ±ÛÀÚºÎÅÍÀÇ ¼Ò½ºÄڵ尡 0004DB00¹øÁö·Î ¸¸µé¾îÁ³´Ù´Â ¶æÀÔ´Ï´Ù.


¿¡·¯°¡ ³­ ÁÖ¼Ò°¡ $0044EBA9 ¿´ÁÒ?

ÀÌ ÁÖ¼Ò °ª¿¡¼­ HInstanceÀΠ$00400000¸¦ »®´Ï´Ù.(Win32ÀÇ °æ¿ìÀÔ´Ï´Ù.)

±×¸®°í PEÆ÷¸ËÀÇ Çì´õ µî ºÒÇÊ¿äÇÑ ¾ÕºÎºÐ »çÀÌÁîÀΠ$1000 µµ »®´Ï´Ù.

±×·¯¸é $0004DBA9 °¡ µË´Ï´Ù.

Line numbers for Unit1(Unit1.pas) ¼½¼Ç¿¡¼­ $0004DBA9¸¦ Ã£¾Æ º¾½Ã´Ù.

¸î ¶óÀÎÀΰ¡¿ä?

40 0001:0004DBA9 À̶ó°í µÇ¾î ÀÖ½À´Ï´Ù.

±×·¯¹Ç·Î ¿¡·¯°¡ ³­ ºÎºÐÀº Unit1ÀÇ 40¶óÀΠ0001¹ø° ±ÛÀÚÀÎ


    i := Integer( P^ );


ÀÔ´Ï´Ù.


XP, Win2000, Win7, Win8, Win10¿¡¼­ 32ºñÆ® EXEÀÇ HInstance´Â Ç×»ó $00400000 ÀÌ°í,
µ¨ÆÄÀ̷Π¸¸µé¾îÁø EXEÀÇ PEÇì´õÁ¤º¸´Â Ç×»ó $1000 ¹ÙÀÌÆ®ÀÔ´Ï´Ù.
±×·¯¹Ç·Î ¿¡·¯°¡ ³­ ÁּҴ = ¿¡·¯È­¸é¿¡ ³ª¿Â ÁÖ¼Ò - $00401000 Çϸ頵˴ϴÙ.


ÀÌ·¸°Ô Ã£À¸½Ã¸é µÇ´Âµ¥¿ä.

mapÆÄÀÏÀÌ ÀÖ¾î¾ßÇϹǷΠÇÁ·Î±×·¥À» ¹èÆ÷Çϱâ Àü¿¡ ¸ÊÆÄÀÏÀ» ¸¸µé¾î ³ö¾ß ÇÕ´Ï´Ù.
ȤÀº ¾È ¸¸µé¾ú¾îµµ ³ªÁß¿¡ ¸¸µé¸é µÇ´Âµ¥,
´Ü, ¼Ò½ºÄڵ尡 ÃÖÁ¾ ÄÄÆÄÀϵÆÀ» ¶§ÀÇ ¸ð¾ç ±×´ë·Î ÀÖ¾î¾ß ÇÕ´Ï´Ù. ¹°·Ð, »ç¿ëÇÑ ÄÞÆ÷³ÍÆ®±îÁö ÀüºÎ¿ä.

±×¸®°í ¸Ê¿¡ ¶óÀκ° ÁÖ¼Ò°ªÀº ÄÄÆÄÀÏ ÇÒ ´ç½Ã ½ÇÁ¦·Î ÄÄÆÄÀÏÇÑ À¯´Öµé¸¸ ³ª¿É´Ï´Ù.
±×·¯¹Ç·Î Graphics.pas¿Í °°ÀÌ Lib °æ·Î¿¡ dcu¸¸ ÀÖ°í pas°¡ ¾ø´Â À¯´ÖµéÀº Æ÷ÇÔµÇÁö ¾Ê½À´Ï´Ù.
¹Ù²ã¸»Çϸé Graphics.pasµµ ¸Ê¿¡ ¶óÀκ° ÁÖ¼Ò°ªÀ» ³²±â·Á¸é ±× À¯´Öµµ ÄÄÆÄÀÏÀÌ µÇµµ·Ï ÇÁ·ÎÁ§Æ® °æ·Î¿¡ °°ÀÌ µÎ´ø°¡ Lib¿¡ Graphics.pas¸¦ ³Ö´ø°¡ Çϸ頵˴ϴÙ.

³¡.